#include <rtdef.h>
#include <rtthread.h>
#include "power.h"
#include "hc32_ll_clk.h"
#include "cpuHc32f460.h"
#include "hc32_ll_fcg.h"
#include "hc32_ll_pwc.h"
#include "hc32_ll_adc.h"
#include "stdbool.h"
//电源引脚
port_init_t TPower_Config[] =
{
        {.enPort = GPIO_PORT_C, GPIO_PIN_14, GPIO_FUNC_0, HIGH         , PIN_DIR_OUT,PIN_OUT_TYPE_CMOS, false, false, false, false, false,false }, // 14.PC4 5V电源
        {.enPort = GPIO_PORT_B, GPIO_PIN_02, GPIO_FUNC_0, LOW          , PIN_DIR_OUT,PIN_OUT_TYPE_CMOS, false, false, false, false, false,false },// 29.PE10 3.3V电源
        {.enPort = GPIO_PORT_A, GPIO_PIN_15, GPIO_FUNC_0, LOW          , PIN_DIR_OUT,PIN_OUT_TYPE_CMOS, false, false, false, false, false,false     },// 29.PA15 8306电源
        {.enPort = GPIO_PORT_C, GPIO_PIN_10, GPIO_FUNC_0, HIGH         , PIN_DIR_OUT,PIN_OUT_TYPE_CMOS, false, false, false, false, false,false },// 16.PC10 8306复位
};                                                                                                                                 

int Power_gpio_device_register(void)
{
    InitGPIO(&TPower_Config[0],sizeof(TPower_Config)/sizeof(port_init_t));
    return RT_EOK;
}
// 设备注销函数
void Power_gpio_device_unregister(void)
{
    rt_device_t dev = rt_device_find("power_gpio");
    if (dev)
    {
        rt_device_unregister(dev);
        rt_free(dev->user_data);
    }
}

/* 导出自动初始化函数（在系统启动时自动执行） */
INIT_DEVICE_EXPORT(Power_gpio_device_register);
